package com.dqyt.khjc.mapper;

import com.dqyt.khjc.bean.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;

import java.util.List;

/**
 * 用户
 *
 * @author Administrator
 */
@EnableAutoConfiguration
public interface UserMapper {

    public User getUserById(@Param("userId") long userId);


    /**
     * 包含当前使用印章路径
     *
     * @param userId
     * @return
     */
    public User getUserByIdOrS(@Param("userId") long userId);


    public User getUserByPhone(@Param("phone") String phone);

    public User getUserByAccount(@Param("account") String account);

    public int createUser(User mUser);

    public int updateUser(User mUser);

    public int updateUserById(User mUser);

    public int updateUserTxById(User mUser);

    public List<User> getmUserList();

    /**
     * 分页查询用户列表
     *
     * @param page
     * @param size
     * @param userName
     * @param phone
     * @param account
     * @param role
     * @param statue
     * @return
     */
    public List<User> getUserListPage(Integer page, Integer size, String userName,
                                      String phone, String account, int role, int statue);


    /**
     * 查询总条数
     *
     * @param userName
     * @param phone
     * @param account
     * @param role
     * @param statue
     * @return
     */
    public long getTotalNumber(String userName, String phone, String account, int role, int statue);


    /**
     * 重置密码
     *
     * @param userId
     * @return
     */
    public long resetPassword(long userId, String password);


    /**
     * 禁止登陆/ 允许登陆
     *
     * @param userId
     * @param statue
     * @return
     */
    public int updateStatueByUserId(long userId, int statue);

    /**
     * 查询某个角色的用户
     *
     * @param role
     * @return
     */
    public List<User> getUserByRole(long role);

    /**
     * 查询某个角色的用户
     *
     * @return
     */
    public List<User> getUserByRoleIds(@Param("ids") long[] ids);

    /**
     * 查询所有检验人
     *
     * @return
     */
    public List<User> getJyyUser();


    /**
     * 查询所有检验人
     *
     * @return
     */
    public List<User> getJyyUser2(String role);




    /**
     * 查询所有核验人
     *
     * @return
     */
    public List<User> getHyyUser();

    /**
     * 查询所欲批准人
     *
     * @return
     */
    public List<User> getPzyUser();


    /**
     *
     * @param userId
     * @return
     */
    public List<User> getUserByRoleExceptMe(long userId);


    /**
     * 查询所有用户
     *
     * @return
     */
    public List<User> getUserList();

    /**
     * 查询所有用户
     *
     * @return
     */
    public List<User> getUserList2();


    public List<User> getUserListJc();


    /**
     * 查询是否有重复的账号
     * @return
     */
    public long getUserByCount(String account);


    /**
     * 查询是否有重复的手机
     * @return
     */
    public long getUserByPhoneCun(String phone);


    public User getUserHyyJcById(long userId);
}
